unit dmtratamentoerro;

{$mode objfpc}

interface

uses
  Classes, SysUtils, FileUtil, LResources, Forms, Dialogs;

type

  { TDataTratamentoErro }

  TDataTratamentoErro = class(TDataModule)
    ApplicationProperties1: TApplicationProperties;
    procedure ApplicationProperties1Exception(Sender: TObject; E: Exception);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  DataTratamentoErro: TDataTratamentoErro;

implementation

{ TDataTratamentoErro }

procedure TDataTratamentoErro.ApplicationProperties1Exception(Sender: TObject;
  E: Exception);
var
  Msg: string;
begin
  {if (E is EConvertError) then begin
    Msg := 'Erro de conversão';
    Msg := Msg + LineEnding + E.ClassName;
    Msg := Msg + LineEnding + E.Message;
    Msg := Msg + LineEnding + E.ToString;
    Msg := Msg + LineEnding + E.UnitName;
  end else if (E is EZSQLException) then begin
    Msg := 'Erro de banco de dados';
    Msg := Msg + LineEnding + E.ClassName;
    Msg := Msg + LineEnding + E.Message;
    Msg := Msg + LineEnding + E.ToString;
    Msg := Msg + LineEnding + E.UnitName;
  end else begin
    Msg := 'Erro desconhecido';
    Msg := Msg + LineEnding + E.ClassName;
    Msg := Msg + LineEnding + E.Message;
    Msg := Msg + LineEnding + E.ToString;
    Msg := Msg + LineEnding + E.UnitName;
  end;}
  Msg := Application.Title + LineEnding;
  Msg := Msg + LineEnding + 'Erro no sistema' + LineEnding;
  Msg := Msg + LineEnding + 'Executável: ' + Application.ExeName;
  Msg := Msg + LineEnding + 'Classe de erro: ' + E.ClassName;
  Msg := Msg + LineEnding + 'Unit: ' + E.UnitName;
  Msg := Msg + LineEnding + 'Detalhes: ' + E.Message;
  ShowMessage(Msg);
end;

initialization
  {$I dmtratamentoerro.lrs}

end.

